home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / fax / src / recvfax / defs.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  4KB  |  120 lines

  1. /*    $Header: /usr/people/sam/fax/recvfax/RCS/defs.h,v 1.20 1994/02/28 14:22:01 sam Rel $
  2. /*
  3.  * Copyright (c) 1990, 1991, 1992, 1993, 1994 Sam Leffler
  4.  * Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc.
  5.  *
  6.  * Permission to use, copy, modify, distribute, and sell this software and 
  7.  * its documentation for any purpose is hereby granted without fee, provided
  8.  * that (i) the above copyright notices and this permission notice appear in
  9.  * all copies of the software and related documentation, and (ii) the names of
  10.  * Sam Leffler and Silicon Graphics may not be used in any advertising or
  11.  * publicity relating to the software without the specific, prior written
  12.  * permission of Sam Leffler and Silicon Graphics.
  13.  * 
  14.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  15.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  16.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  17.  * 
  18.  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  19.  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  20.  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  21.  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  22.  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  23.  * OF THIS SOFTWARE.
  24.  */
  25. #ifndef _DEFS_
  26. #define    _DEFS_
  27.  
  28. #include "config.h"
  29.  
  30. #include <sys/types.h>
  31. #include <stdio.h>
  32. #include <string.h>
  33. #include <time.h>
  34. #include <syslog.h>
  35. #include <ctype.h>
  36. #include <stdarg.h>
  37.  
  38. #include "port.h"
  39.  
  40. typedef struct {
  41.     char faxNumber[40];
  42. } config;
  43.  
  44. #define JOB_LOCKED    0x0001
  45. #define JOB_SENT    0x0002
  46. #define JOB_INVALID    0x0004
  47.  
  48. typedef struct _job {
  49.     struct _job* next;
  50.     unsigned int flags;
  51.     char*    qfile;        /* associated q file name */
  52.     time_t    tts;        /* time to send */
  53.     char*    killtime;    /* time to kill job */
  54.     char*    sender;        /* sender's name */
  55.     char*    mailaddr;    /* return mail address */
  56.     char*    number;        /* dialstring for fax machine */
  57.     char*    external;    /* displayable phone number of fax machine */
  58.     char*    status;        /* reason for current state */
  59.     char*    modem;        /* requested outgoing modem */
  60. } Job;
  61.  
  62. #define    TYPE_TIFF    1
  63. #define    TYPE_POSTSCRIPT    2
  64.  
  65. #define    isTag(a)    (strcasecmp(tag,a) == 0)
  66. #define    isCmd(a)    (strcasecmp(line,a) == 0)
  67. #define    MIN(a,b)    ((a)<(b)?(a):(b))
  68.  
  69. extern    char* SPOOLDIR;
  70.  
  71. extern    char** dataFiles;
  72. extern    char** pollIDs;
  73. extern    int* fileTypes;
  74. extern    int nDataFiles;
  75. extern    int nPollIDs;
  76. extern    char line[1024];        /* current input line */
  77. extern    char* tag;            /* keyword: tag */
  78. extern    int debug;
  79. extern    Job* jobList;
  80. extern    int seqnum;
  81. extern    int version;            /* protocol version */
  82. extern    char userID[1024];        /* user identity */
  83. extern    struct tm now;            /* ``current'' time of day */
  84.  
  85. extern    int getCommandLine();
  86. extern    void newDataFile(char* filename, int type);
  87. extern    Job* readJobs();
  88. extern    void checkPermission();
  89. extern    int notifyServer(const char* modem, const char* fmt, ...);
  90. extern    int cvtTime(const char* spec, struct tm* ref, u_long* result,
  91.         const char* what);
  92. extern    void sendClient(char* tag, char* fmt, ...);
  93. extern    void sendError(char* fmt, ...);
  94. extern    void sendAndLogError(char* fmt, ...);
  95. extern    void protocolBotch(char* fmt, ...);
  96. extern    void vsendClient(char* tag, char* fmt, va_list ap);
  97. extern    void done(int status, char* how);
  98.  
  99. extern    int modemMatch(const char*, const char*);
  100. typedef    void jobFunc(Job*, const char*, const char* arg);
  101. extern    void applyToJob(const char* modem, char* tag, const char* op, jobFunc*);
  102.  
  103. extern    void newPollID(const char* modem, char* pid);
  104. extern    void getTIFFData(const char* modem, char* tag);
  105. extern    void getPostScriptData(const char* modem, char* tag);
  106. extern    void getDataOldWay(const char* modem, char* tag);
  107. extern    void submitJob(const char* modem, char* tag);
  108. extern    void sendRecvStatus(const char* modem, char* tag);
  109. extern    void sendAllStatus(const char* modem, char* tag);
  110. extern    void sendJobStatus(const char* modem, char* onwhat);
  111. extern    void sendUserStatus(const char* modem, char* onwhat);
  112. extern    void sendServerStatus(const char* modem, char* tag);
  113. extern    void removeJob(const char* modem, char* tag);
  114. extern    void killJob(const char* modem, char* tag);
  115. extern    void alterJobTTS(const char* modem, char* tag);
  116. extern    void alterJobKillTime(const char* modem, char* tag);
  117. extern    void alterJobMaxDials(const char* modem, char* tag);
  118. extern    void alterJobNotification(const char* modem, char* tag);
  119. #endif /* _DEFS_ */
  120.